package com.open.pay.wechat.client.api;

import com.open.framework.response.R;
import com.open.pay.wechat.client.cmd.WechatCreateCmd;
import com.open.pay.wechat.client.cmd.WechatRefundCmd;
import com.open.pay.wechat.client.dto.RefundQueryDto;
import com.open.pay.wechat.client.dto.WechatBillDto;
import com.open.pay.wechat.client.dto.WechatCreateDto;
import com.open.pay.wechat.client.dto.PayQueryDto;
import com.open.pay.wechat.client.dto.WechatRefundDto;
import com.open.pay.wechat.client.query.WechatBillQry;
import com.open.pay.wechat.client.query.WechatPayQry;
import com.open.pay.wechat.client.query.WechatRefundQry;

/**
 * @author zhang kaichao
 */
public interface WechatPayService {

    /**
     * 统一下单业务
     */
    R<WechatCreateDto> wechatCreatePay(WechatCreateCmd cmd);

    /**
     * 退款
     */
    R<WechatRefundDto> wechatRefund(WechatRefundCmd cmd);

    /**
     * 订单查询
     */
    R<PayQueryDto> wechatQuery(WechatPayQry qry);

    /**
     * 退款查询
     */
    R<RefundQueryDto> wechatRefundQuery(WechatRefundQry qry);

    /**
     * 下载对账账单
     */
    R<WechatBillDto> wechatBillQuery(WechatBillQry qry);
}
